Le risposte a questa domanda sono uno sforzo della comunità. Modifica le risposte esistenti per migliorare questo post. Attualmente non accetta nuove risposte o interazioni. Come posso reindirizzare l'utente da una pagina all'altra utilizzando jQuery o JavaScript puro?
2020-12-07 21:59:43
1 2 Il prossimo Non si esegue semplicemente il reindirizzamento utilizzando jQuery jQuery non è necessario e window.location.replace (...) simulerà al meglio un reindirizzamento HTTP. window.location.replace (...) è meglio che usare window.location.href, perché replace () non mantiene la pagina di origine nella cronologia della sessione, il che significa che l'utente non rimarrà bloccato in un back-end senza fine- pulsante fiasco. Se vuoi simulare qualcuno che fa clic su un link, usa location.href Se vuoi simulare un reindirizzamento HTTP, usa location.replace Per esempio: // comportamento simile a un reindirizzamento HTTP window.location.replace ("http://stackoverflow.com"); // comportamento simile al clic su un collegamento window.location.href = "http://stackoverflow.com"; | ATTENZIONE: questa risposta è stata semplicemente fornita come una possibile soluzione; ovviamente non è la soluzione migliore, in quanto richiede jQuery. Preferisci invece la pura soluzione JavaScript. $ (posizione) .attr ('href', 'http://stackoverflow.com') | Metodo JavaScript "vaniglia" standard per reindirizzare una pagina window.location.href = "newPage.html"; O più semplicemente: (poiché la finestra è globale) location.href = "newPage.html"; Se sei qui perché stai perdendo HTTP_REFERER durante il reindirizzamento, continua a leggere: (Altrimenti ignora quest'ultima parte) La sezione seguente è per coloro che utilizzano HTTP_REFERER come una delle tante misure di sicurezza (sebbene non sia una grande misura di protezione). Se utilizzi Internet Explorer 8 o versioni precedenti, queste variabili vanno perse quando utilizzi qualsiasi forma di reindirizzamento della pagina JavaScript (location.href, ecc.). Di seguito implementeremo un'alternativa per IE8 e versioni precedenti in modo da non perdere HTTP_REFERER. Altrimenti, puoi quasi sempre usare semplicemente window.location.href. Il test su HTTP_REFERER (incolla URL, sessione, ecc.) Può aiutare a capire se una richiesta è legittima. (Nota: ci sono anche modi per aggirare / falsificare questi referrer, come notato dal link di droop nei commenti) Semplice soluzione di test cross-browser (fallback a window.location.href per Internet Explorer 9+ e tutti gli altri browser) Utilizzo: redirect ('anotherpage.aspx'); function redirect (url) { var ua = navigator.userAgent.toLowerCase (), isIE = ua.indexOf ('msie')! == -1, versione = parseInt (ua.substr (4, 2), 10); // Internet Explorer 8 e versioni precedenti if (isIE && version <9) { var link = document.createElement ('a'); link.href = url; document.body.appendChild (collegamento); link.click (); } // Tutti gli altri browser possono utilizzare lo standard window.location.href (non perdono HTTP_REFERER come Internet Explorer 8 e versioni precedenti) altro { window.location.href = url; } } | Ci sono molti modi per farlo. // window.location window.location.replace ("http://www.example.com") window.location.assign ('http://www.example.com') window.location.href = "http://www.example.com" document.location.href = '/ percorso' // window.history window.history.back () window.history.go (-1) // window.navigate; SOLO per le vecchie versioni di Internet Explorer window.navigate ('top.jsp') // Probabilmente no bueno self.location = "http://www.example.com"; top.location = "http://www.example.com"; // jQuery $ (posizione) .attr ('href', 'http: //www.example.com') $ (finestra) .attr ('location', 'http: //www.example.com') $ (posizione) .prop ('href', 'http://www.example.com') | Funziona con tutti i browser: window.location.href = 'your_url'; | Sarebbe utile se fossi un po 'più descrittivo in quello che stai cercando di fare. Se stai cercando di generare dati impaginati, ci sono alcune opzioni su come farlo. È possibile generare collegamenti separati per ciascuna pagina a cui si desidera accedere direttamente. 1 2 3 ... Si noti che la pagina corrente nell'esempio viene gestita in modo diverso nel codice e con CSS. Se vuoi che i dati impaginati vengano modificati tramite AJAX, è qui che entra in gioco jQuery. Quello che dovresti fare è aggiungere un gestore di clic a ciascuno degli anchor tag corrispondenti a una pagina diversa. Questo gestore di clic richiama un codice jQuery che va a recuperare la pagina successiva tramite AJAX e aggiorna la tabella con i nuovi dati. L'esempio seguente presuppone che si disponga di un servizio Web che restituisce i nuovi dati della pagina. $ (documento) .ready (function () { $ ('a.pager-link'). click (function () { var page = $ (questo) .attr ('href'). split (/ \? /) [1]; $ .ajax ({ tipo: "POST", url: "/ path-to-service", dati: pagina, successo: funzione (contenuto) { $ ('# miaTabella'). html (contenuto); // sostituire } }); return false; // per interrompere il collegamento }); }); | Penso anche che location.replace (URL) sia il modo migliore, ma se vuoi informare i motori di ricerca del tuo reindirizzamento (non analizzano il codice JavaScript per vedere il reindirizzamento) dovresti aggiungere il meta rel = "canonical" tag al tuo sito web. Anche l'aggiunta di una sezione noscript con un meta tag di aggiornamento HTML è una buona soluzione. Ti suggerisco di utilizzare questo strumento di reindirizzamento JavaScript acreare reindirizzamenti. Ha anche il supporto di Internet Explorer per passare il referrer HTTP. Il codice di esempio senza indugio è simile a questo: | Ma se qualcuno vuole reindirizzare di nuovo alla home page, può utilizzare il seguente frammento. window.location = window.location.host Sarebbe utile avere tre diversi ambienti come sviluppo, messa in scena e produzione. Puoi esplorare questo oggetto window.location o window.location semplicemente inserendo queste parole nella console di Chrome o nella console di Firebug. | JavaScript fornisce molti metodi per recuperare e modificare l'URL corrente visualizzato nella barra degli indirizzi del browser. Tutti questi metodi utilizzano l'oggetto Location, che è una proprietà dell'oggetto Window. Puoi creare un nuovo oggetto Posizione con l'URL corrente come segue. var currentLocation = window.location; Struttura di base di un URL// : / Protocollo: specifica il nome del protocollo da utilizzare per accedere alla risorsa su Internet. (HTTP (senza SSL) o HTTPS (con SSL)) hostname - Il nome host specifica l'host che possiede la risorsa. Ad esempio, www.stackoverflow.com. Un server fornisce servizi utilizzando il nome dell'host. porta - Un numero di porta utilizzato per riconoscere un processo specifico a cui deve essere inoltrato un messaggio Internet o altro messaggio di rete quando arriva a un server. pathname - Il percorso fornisce informazioni sulla risorsa specifica all'interno dell'host a cui il client Web desidera accedere. Ad esempio, stackoverflow.com/index.html. query: una stringa di query segue il componente path e fornisce una stringa di informazioni che la risorsa può utilizzare per uno scopo (ad esempio, come parametri per una ricerca o come dati da elaborare). hash - La parte di ancoraggio di un URL, include il segno cancelletto (#). Con queste proprietà dell'oggetto Location è possibile accedere a tutti questi componenti URL hash -Imposta o restituisce la parte di ancoraggio di un URL. host -Set o restituisce il nome host e la porta di un URL. hostname -Sets o restituisce il nome host di un URL. href -Imposta o restituisce l'intero URL. pathname -Imposta o restituisce il nome del percorso di un URL. port: imposta o restituisce il numero di porta utilizzato dal server per un URL. protocollo: imposta o restituisce il protocollo di un URL. cerca -Set o restituisce la parte di query di un URL Ora se vuoi cambiare una pagina o reindirizzare l'utente a un'altra pagina puoi usare la proprietà href dell'oggetto Location in questo modo È possibile utilizzare la proprietà href dell'oggetto Location. window.location.href = "http://www.stackoverflow.com"; Anche l'oggetto posizione dispone di questi tre metodi assign () - Carica un nuovo documento. reload () - Ricarica il documento corrente. sostituire () - Sostituisce il documento corrente con uno nuovo Puoi usare i metodi assign () e replace anche per reindirizzare ad altre pagine come queste location.assign ("http://www.stackoverflow.com"); location.replace ("http://www.stackoverflow.com"); Come differiscono assign () e replace () - La differenza tra il metodo replace () e il metodo assign () () è che replace () rimuove l'URL del documento corrente dalla cronologia del documento, significa che non è possibile utilizzarlo il pulsante "indietro" per tornare al documento originale. Quindi usa il metodo assign () se vuoi caricare un nuovo documento e vuoi dare l'opzione per tornare al documento originale. Puoi cambiare la proprietà href dell'oggetto location usando jQuery anche in questo modo $ (posizione) .attr ('href', url); E quindi puoi reindirizzare l'utente a un altro URL. | Fondamentalmente jQuery è solo un framework JavaScript e per fare alcune cose come il reindirizzamento in questo caso, puoi semplicemente usare JavaScript puro, quindi in quel caso hai 3 opzioni usando vanillaJavaScript: 1) Utilizzando la sostituzione della posizione, questo sostituirà la cronologia corrente della pagina, significa che non è possibile utilizzare il pulsante Indietro per tornare alla pagina originale. window.location.replace ("http://stackoverflow.com"); 2) Utilizzando l'assegnazione della posizione, questo manterrà la cronologia per te e utilizzando il pulsante Indietro, puoi tornare alla pagina originale: window.location.assign ("http://stackoverflow.com"); 3) Consiglio di utilizzare uno di questi metodi precedenti, ma questa potrebbe essere la terza opzione utilizzando JavaScript puro: window.location.href = "http://stackoverflow.com"; Puoi anche scrivere una funzione in jQuery per gestirla, ma non è consigliabile in quanto è solo una funzione JavaScript pura di una riga, inoltre puoi utilizzare tutte le funzioni sopra senza finestra se sei già nell'ambito della finestra, ad esempio window.location.replace ("http://stackoverflow.com"); potrebbe essere location.replace ("http://stackoverflow.com"); Inoltre li mostro tutti nell'immagine qui sotto: | Dovrebbe essere solo in grado di impostare utilizzando window.location. Esempio: window.location = "https://stackoverflow.com/"; Ecco un post precedente sull'argomento: Come faccio a reindirizzare a un'altra pagina web? | Prima di iniziare, jQuery è una libreria JavaScript utilizzata per la manipolazione del DOM. Quindi non dovresti usare jQuery per un reindirizzamento della pagina. Una citazione da Jquery.com: Sebbene jQuery possa funzionare senza grossi problemi nelle versioni precedenti del browser, non testiamo attivamente jQuery in essi e generalmente non risolviamo bug che può apparire in loro. È stato trovato qui: https://jquery.com/browser-support/ Quindi jQuery non è una soluzione definitiva per la compatibilità con le versioni precedenti. La seguente soluzione che utilizza JavaScript grezzo funziona in tutti i browser ed è stata standard per molto tempo, quindi non è necessaria alcuna libreria per il supporto cross browser. Questa pagina verrà reindirizzata a Google dopo 3000 millisecondi esempio Verrai reindirizzato a Google a breve.
Le diverse opzioni sono le seguenti: window.location.href = "url"; // Simula la normale navigazione a una nuova pagina window.location.replace ("url"); // Rimuove l'URL corrente dalla cronologia e lo sostituisce con un nuovo URL window.location.assign ("url"); // Aggiunge un nuovo URL allo stack della cronologia e reindirizza al nuovo URL window.history.back (); // Simula un clic sul pulsante Indietro window.history.go (-1); // Simula un clic sul pulsante Indietro window.history.back (-1); // Simula un clic sul pulsante Indietro window.navigate ("page.html"); // Uguale a window.location = "url" Quando si utilizza Sostituisci, il pulsante Indietro non tornerà alla pagina di reindirizzamento, come se non fosse mai stato nella cronologia. Se desideri che l'utente possa tornare alla pagina di reindirizzamento, utilizza window.location.href o window.location.assign. Se utilizzi un'opzione che consente all'utente di tornare alla pagina di reindirizzamento, ricorda che quando entri nella pagina di reindirizzamento ti reindirizzerà di nuovo. Quindi tienilo in considerazione quando scegli un'opzione per il tuo reindirizzamento. In condizioni in cui la pagina viene reindirizzata solo quando viene eseguita un'azione dall'utente, la pagina nella cronologia del pulsante Indietro andrà bene. Ma se la pagina si reindirizza automaticamente, è necessario utilizzare Sostituisci in modo che l'utente possa utilizzare il pulsante Indietro senza essere costretto a tornare alla pagina inviata dal reindirizzamento. Puoi anche utilizzare i metadati per eseguire un reindirizzamento di pagina come segue. META Refresh Posizione META BASE HijackingMolti altri metodi per reindirizzare il tuo ignaro cliente a una pagina che potrebbero non voler andare possono essere trovati in questa pagina (nessuno di loro fa affidamento su jQuery): https://code.google.com/p/html5security/wiki/RedirectionMethods Vorrei anche sottolineare che le persone non amano essere reindirizzate in modo casuale. Reindirizza le persone solo quando è assolutamente necessario. Se inizi a reindirizzare le persone in modo casuale, non torneranno mai più al tuo sito. Il paragrafo successivo è ipotetico: Potresti anche essere segnalato come sito dannoso. Se ciò accade, quando le persone fanno clic su un collegamento al tuo sito, il browser dell'utente potrebbe avvisarle che il tuo sito è dannoso. Quello che può anche accadere è che i motori di ricerca potrebbero iniziare a perdere la tua valutazione se le persone segnalano una brutta esperienza sul tuo sito. Consulta le Istruzioni per i webmaster di Google sui reindirizzamenti: https://support.google.com/webmasters/answer/2721217?hl=it&ref_topic=6001971 Ecco una piccola pagina divertente che ti butta fuori dalla pagina. Vai via Vai via
Se combini insieme i due esempi di pagina, avresti un ciclo infantile di reindirizzamentogarantirà che il tuo utente non vorrà mai più utilizzare il tuo sito. | var url = 'asdf.html'; window.location.href = url; | Puoi farlo senza jQuery come: window.location = "http://tuodominio.com"; E se vuoi solo jQuery, puoi farlo come: $ jq (finestra) .attr ("posizione", "http://tuodominio.com"); | Funziona con jQuery: $ (finestra) .attr ("location", "http://google.fr"); | # Reindirizzamento della pagina HTML utilizzando il metodo jQuery / JavaScript Prova questo codice di esempio: function YourJavaScriptFunction () { var i = $ ('# login'). val (); if (i == 'login') window.location = "Login.php"; altro window.location = "Logout.php"; } Se desideri fornire un URL completo come window.location = "www.google.co.in" ;. | Domanda originale: "Come reindirizzare utilizzando jQuery?", Quindi la risposta implementa jQuery >> Caso di utilizzo gratuito. Per reindirizzare semplicemente a una pagina con JavaScript: window.location.href = "/ contact /"; O se hai bisogno di un ritardo: setTimeout (function () { window.location.href = "/ contact /"; }, 2000); // Tempo in millisecondi jQuery ti consente di selezionare facilmente elementi da una pagina web. Puoi trovare tutto ciò che desideri su una pagina e quindi utilizzare jQuery per aggiungere effetti speciali, reagire alle azioni dell'utente o mostrare e nascondere il contenuto all'interno o all'esterno dell'elemento selezionato. Tutte queste attività iniziano con il sapere come selezionare un elemento o un evento. $ ('a, img'). on ('click', function (e) { e.preventDefault (); $ (questo) .animate ({ opacity: 0 // Metti qui un po 'di animazione CSS }, 500); setTimeout (function () { // OK, finito jQuery staff, andiamo a reindirizzare window.location.href = "/ contact /"; }, 500); }); Immagina che qualcuno abbia scritto uno script / plugin con 10000 righe di codice. Con jQuery puoi connetterti a questo codice con solo una o due righe. | Devi inserire questa riga nel tuo codice: $ (posizione) .attr ("href", "http://stackoverflow.com"); Se non hai jQuery, vai con JavaScript: window.location.replace ("http://stackoverflow.com"); window.location.href ("http://stackoverflow.com"); | Quindi, la domanda è come creare una pagina di reindirizzamento e non come reindirizzare a un sito web? Hai solo bisogno di utilizzare JavaScript per questo. Ecco un piccolo codice che creerà una pagina di reindirizzamento dinamico. Quindi supponi di inserire questo snippet in un file di reindirizzamento / index.html sul tuo sito web, puoi usarlo in questo modo. http://www.mywebsite.com/redirect?url=http://stackoverflow.com E se vai a quel link ti reindirizzerà automaticamente a stackoverflow.com. Collegamento alla documentazione Ed è così che crei una pagina di reindirizzamento semplice con JavaScript Modificare: C'è anche una cosa da notare. Ho aggiunto window.location.replace nel mio codice perché penso che si adatti a una pagina di reindirizzamento, ma devi sapere che quando usi window.location.replace e vieni reindirizzato, quando premi il pulsante Indietro nel tuo browser non lo farà tornato alla pagina di reindirizzamento, e tornerà alla pagina precedente, dai un'occhiata a questa piccola cosa demo. Esempio: Il processo: store home => reindirizza la pagina a google => google Quando sei su google: google => pulsante indietro nel browser => home store Quindi, se questo si adatta alle tue esigenze, allora dovrebbe andare tutto bene. Se desideri includere la pagina di reindirizzamento nella cronologia del browser, sostituiscila if (url) window.location.replace (url); con if (url) window.location.href = url; | Nella funzione clic, aggiungi semplicemente: window.location.href = "L'URL in cui vuoi reindirizzare"; $ ('# id'). fare clic su (function () { window.location.href = "http://www.google.com"; }); | Prova questo: location.assign ("http://www.google.com"); Snippet di codice di esempio. | jQuery non è necessario. Puoi farlo: window.open ("URL", "_ self", "", "") È così facile! Il modo migliore per avviare una richiesta HTTP è con document.loacation.href.replace ('URL'). | Prima scrivi correttamente. Si desidera navigare all'interno di un'applicazione per un altro collegamento dall'applicazione per un altro collegamento. Ecco il codice: window.location.href = "http://www.google.com"; E se vuoi navigare tra le pagine all'interno della tua applicazione, ho anche il codice, se vuoi. | Puoi reindirizzare in jQuery in questo modo: $ (posizione) .attr ('href', 'http://yourPage.com/'); | Utilizzando JavaScript: Metodo 1: window.location.href = "http://google.com"; Metodo 2: window.location.replace ("http://google.com"); Utilizzando jQuery: Metodo 1: $ (posizione) $ (posizione) .attr ('href', 'http://google.com'); Metodo 2: funzione riutilizzabile jQuery.fn.redirectTo = funzione (url) { window.location.href = url; } jQuery (finestra) .redirectTo ("http://google.com"); | In JavaScript e jQuery possiamo utilizzare il seguente codice per reindirizzare una pagina a un'altra pagina: window.location.href = "http://google.com"; window.location.replace ("page1.html"); | ECMAScript 6 + jQuery, 85 byte $ ({jQueryCode: (url) => location.replace (url)}). attr ("jQueryCode") ("http://example.com") Per favore, non uccidereio, questo è uno scherzo. È uno scherzo. È uno scherzo. Questo ha "fornito una risposta alla domanda", nel senso che ha chiesto una soluzione "usando jQuery" che in questo caso implica forzarlo nell'equazione in qualche modo. A quanto pare Ferrybig ha bisogno che lo scherzo sia spiegato (sto ancora scherzando, sono sicuro che ci sono opzioni limitate nel modulo di revisione), quindi senza ulteriori indugi: Altre risposte stanno utilizzando inutilmente attr () di jQuery sulla posizione o sugli oggetti finestra. Anche questa risposta ne abusa, ma in un modo più ridicolo. Invece di usarlo per impostare la posizione, utilizza attr () per recuperare una funzione che imposta la posizione. La funzione si chiama jQueryCode anche se non c'è niente in jQuery, e chiamare una funzione somethingCode è semplicemente orribile, specialmente quando qualcosa non è nemmeno un linguaggio. "85 byte" è un riferimento a Code Golf. Il golf ovviamente non è qualcosa che dovresti fare al di fuori del golf in codice, e inoltre questa risposta chiaramente non è effettivamente golf. Fondamentalmente, rabbrividire. | Javascript: window.location.href = "www.your_url.com"; window.top.location.href = "www.your_url.com"; window.location.replace ("www.your_url.com"); Jquery: var url = "www.your_url.com"; $ (posizione) .attr ('href', url); $ (location) .prop ('href', url); // invece di location puoi usare window | Ecco un reindirizzamento ritardato. Puoi impostare il tempo di ritardo come preferisci:Titolo del documento Verrai reindirizzato tra 8 secondi!| Ci sono tre modi principali per farlo, window.location.href = "blaah.com"; window.location.assign ('blaah.com'); e... window.location.replace ('blaah.com'); L'ultimo è il migliore, per un reindirizzamento tradizionale, perché non salverà la pagina a cui sei andato prima di essere reindirizzato nella cronologia delle ricerche. Tuttavia, se desideri semplicemente aprire una scheda con JavaScript, puoi utilizzare uno dei metodi precedenti EDIT: il prefisso della finestra è opzionale. | 1 2 Il prossimo Non è la risposta che stai cercando? Sfoglia altre domande etichettate javascript jquery redirect o fai la tua domanda.